草庐IT

Javascript JsTestDriver Jasmine 和 Jasmine-jquery

全部标签

javascript - 扩展 jQuery 的 .on() 以处理移动触摸事件

我正在尝试在没有其余jQueryMobile的情况下使用jQueryMobile事件。https://github.com/jvduf/jquery-mobile-events/blob/master/jquery.mobile.events.js该代码段支持所有这些,并且工作正常,但不适用于.on()事件处理程序。例如:$('a').on('tap',function(){console.log('Hithere!');});但是它确实可以与.live()一起使用,但现在已贬值。所以我的问题;有没有办法扩展.on()功能以包括点击事件和其他事件?完整列表如下:触摸启动触摸移动触摸方向

javascript - jQuery 如何返回一个数组并且仍然是一个 jQuery 对象?

我正在尝试重现jQuery(1.7.1)的对象结构,以更好地理解它的工作原理。我有以下代码:(function(window,undefined){vardocument=window.document,navigator=window.navigator,location=window.location;window.myclass=(function(){var__con=function(){returnnew__con.fn.init();}__con.fn=__con.prototype={'init':function(){returnthis;},'test':funct

javascript - 使用 HTTPS 时,jQuery.ajax 不发送正确的 ajax header

每当我创建一个jQuery.ajax请求时,当URL使用HTTP协议(protocol)时它工作正常。但是当我向HTTPs服务器发送相同的请求时,发送时没有header[HTTP_X_REQUESTED_WITH:XMLHttpRequest]。因此服务器无法知道这是一个AJAX请求!我试过:切换$.ajax、$.post、$.get使用beforeSend强制header设置CrossDomain:true注意:没有跨域问题,请求有效并得到处理,但不是AJAX。当当前URL为http但请求的URL位于同一域但使用HTTPS时,会发生此问题。http://example.com/hom

javascript - jQuery $(window).load();事件不会在没有 <!DOCTYPE> 声明的页面上触发? (...在 chrome 扩展内容脚本中)

我正在开发一个可以操纵网页的GoogleChrome扩展程序,但它是在部分加载(DOM)或完全加载(带有图像)之后。现在好像很多网站都用声明,或它的一些变体,但许多其他人没有。这个问题主要是关于HTML文档类型的……我不确定其他的。是否可以安全地假设如果网页没有DOCTYPE声明,那么$(window).load();不会被解雇?一开始我使用的是$(document).ready();(当加载DOM时),但后来切换到$(window).load();(让图像也加载)。问题是,现在$(window).load();如果没有DOCTYPE,似乎不起作用。$(文档).ready();似乎适用

javascript - 将不在选择列表中的值输入到 jquery-select2 中

我有一个用例,我允许人们在select2plugin的文本框中键入值没有出现在选择列表中。在一种情况下,我提供验证并且不提交,除非用户选择了有效的项目,但在他们选择之前我不想清除他们的值。选择框可能包含1.00、1.50、1.75、NA、ABS,而用户刚刚输入了1.80。这是一个无效值,但我不想丢失他们的更改,我会将该框标记为无效并允许他们修复他们的更改。我不想将1.80添加到选择框,因为它是一个无效值,但我也不想清除它。如何实现这一目标? 最佳答案 如果您在JS中进行验证,Select2有一个动态加载/生成数据的示例,它会覆盖qu

javascript - 揭示模块模式 - 使用 Jasmine 进行单元测试

在与揭示性模块模式短暂接触后,我开始意识到单元测试模块的挫折。但是,我无法确定这是否是我测试模块的方法,或者是否有某种形式的解决方法。考虑以下代码:varmyWonderfulModule=(function(){functionpublicMethodA(condition){if(condition==='b'){publicMethodB();}}functionpublicMethodB(){//...}return{methodA:publicMethodA,methodB:publicMethodB}}());如果我想测试(使用Jasmine)从publicMethodA到

javascript - 如何使用 Jasmine 在 AngularJS 中测试 .catch Promise 返回?

我是Javascript的新手,刚开始学习AngularJS,但我的大部分测试用例都与我发现的一些很好的示例一起使用。不幸的是,我似乎找不到任何可以帮助我测试当前案例的东西。我正在使用一个模拟服务测试一个Controller,该服务的方法返回一个promise。我希望模拟服务返回一个错误,以便在Controller方法中执行“.catch”block。我可以通过几种方式判断它没有被正确调用:我正在使用istanbul用于代码覆盖,它告诉我我没有覆盖“catch”'.catch'block中的代码没有被执行,据我通过调试得知被测Controller,具体需要测试$scope.login中

javascript - 将 jQuery 日期与 Rails 日期进行比较

我有一个rails生成的日期和一个jQuery生成的日期。rails日期打印如下:2002-10-27jQuery日期打印如下:TueAug14200100:00:00GMT-0500(CDT)我想检查jQuery日期是否大于或小于rails日期。但无论日期如何,jQuery日期总是被解释为大于Rails日期。这是为什么,我怎样才能成功比较这两个日期?varyear=2001varmonth=9month--varday=14vardate=newDate(year,month,day);if(date>){//thiscodeisalwaysexecuted,nomatterwhat

javascript - jQuery查询字符串遍历

这个问题在这里已经有了答案:关闭13年前。PossibleDuplicates:JavaScriptquerystringgetquerystringwithjQueryJavaScript中是否有一个对象/方法可以将这样的字符串:param1=2¶m2=1¶m3=5转换为某种字典,以便我可以将每个元素称为mystring['param1']还是mystring[0]?jQuery能帮上忙吗?

javascript - JQuery - 扩展和访问父类(super class)

在使用$.extend扩展对象时有没有办法访问super对象?我想扩展一个对象,覆盖一个方法,但是在子类方法中调用被覆盖的父类(superclass)方法。 最佳答案 不,因为没有父类(superclass)。根据jQuery.extend的文档:Description:Mergethecontentsoftwoormoreobjectstogetherintothefirstobject.为了调用“父类(superclass)”方法,您必须在某处保留“父类(superclass)”的副本(可能作为“后代”对象中的参数),并直接在“